package com.csust.cg.mongodb.service;

import com.csust.cg.mongodb.domain.Result;
import com.csust.cg.mongodb.domain.vo.QueryVO;

import java.util.List;
import java.util.Map;

/**
 * @author chenguang
 */
public interface DocumentsService {
    /**
     * 通过查询信息获取文档信息数组
     *
     * @param query        查询信息实体
     * @param connectionId 连接ID
     * @return DocumentList
     */
    Result getDocumentsInfoList(QueryVO query, String connectionId);

    /**
     * 获取文档的部分信息
     *
     * @param connectionId   连接id
     * @param databaseName   数据库名
     * @param collectionName 集合名
     * @return 文档的部分信息
     */
    Result getDocumentsInfo(String connectionId, String databaseName, String collectionName);

    /**
     * 插入一个文档
     *
     * @param documents      文档
     * @param connectionId   连接ID
     * @param databaseName   数据库名
     * @param collectionName 集合名
     * @return
     */
    Result insertDocument(List<Map<String, Object>> documents, String connectionId, String databaseName, String collectionName);

    /**
     * 通过_id删除文档
     *
     * @param documents      集合信息，存放_id
     * @param connectionId   连接ID
     * @param databaseName   数据库名
     * @param collectionName 集合名
     * @return
     */
    Result dropDocumentsById(List<Map<String, Object>> documents, String connectionId, String databaseName, String collectionName);

    /**
     * 通过_id更新文档
     *
     * @param documents      集合信息，存放_id
     * @param connectionId   连接ID
     * @param databaseName   数据库名
     * @param collectionName 集合名
     * @return
     */
    Result updateDocumentById(List<Map<String, Object>> documents, String connectionId, String databaseName, String collectionName);
}
